package com.party.mobile.biz.member;

import com.alibaba.fastjson.JSONObject;
import com.party.common.constant.Constant;
import com.party.common.redis.StringJedis;
import com.party.common.utils.StringUtils;
import com.party.core.model.member.ScanLoginOutput;
import com.party.core.model.member.ScanLoginStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @ClassName LoginBizService
 * @Description 登录业务处理
 * @Author yifeng
 * @Date 2019/2/19 15:11
 **/
@Service
public class LoginBizService {
    @Autowired
    StringJedis stringJedis;

    /**
     * @param lgToken redis key 登录token
     * @return com.party.core.model.member.ScanLoginOutput
     * @Author yifeng
     * @Description 获取扫码登录redis数据
     * @Date 15:12 2019/2/19
     **/
    public ScanLoginOutput getLoginOutputRedis(String lgToken) {
        String value = stringJedis.getValue(Constant.SCAN_LOGIN + lgToken);
        if (StringUtils.isNotEmpty(value)) {
            ScanLoginOutput loginOutput = JSONObject.parseObject(value, ScanLoginOutput.class);
            return loginOutput;
        }
        return null;
    }

    /**
     * @param loginOutput redis value
     * @return void
     * @Author yifeng
     * @Description 设置扫码登录redis数据
     * @Date 15:14 2019/2/19
     **/
    public void setLoginOutRedis(ScanLoginOutput loginOutput) {
        stringJedis.setValue(Constant.SCAN_LOGIN + loginOutput.getLgToken(), JSONObject.toJSONString(loginOutput));
    }

    /**
     * @param lgToken 登录token
     * @return void
     * @Author yifeng
     * @Description 手动处理为失效
     * @Date 17:38 2019/2/22
     **/
    public void doError(String lgToken) {
        ScanLoginOutput loginOutput = getLoginOutputRedis(lgToken);
        if (null != loginOutput) {
            loginOutput.setCode(ScanLoginStatus.QR_INVALID.getCode());
            setLoginOutRedis(loginOutput);
        }
    }
}
